[t:/]$ 지식_

u-boot, kernel boot, Machine ID skip

2011/11/23

u-boot 에서 커널로 점프할 때는 부팅 파라메터등을 넘긴다.

go 명령어는 걍 PC 점프이고,
bootm은 부팅 파라메터와 머신 ID를 넘긴다.
머신 ID가 맞지 않으면 부팅에 실패하도록 되어 있는데 참으로 쓸데 없는 기능이다.

커스텀 펌웨어의 부팅을 막기 위한 일종의 보안 기능이라고 할 수는 있지만..
에휴 됐고,

arch/arm/kernel/head.S 에서 79라인 쯤 보면 머신 ID를 가져온다.
u-boot 에서 r1 을 통해 넘기므로 r1에 걍 상수값을 때려 박으면 머신 ID를 바로 넣을 수가 있다.

        ldr     r1, =0x1770     // 상수로 때려박은 머신아이디  이런 16비트 상수는 mov 로 넘기면 에러나니까 주의.
        bl      __lookup_machine_type           @ r5=machinfo */
        movs    r8, r5                          @ invalid machine (r5=0)?
        beq     __error_a                       @ yes, error 'a'
        bl      __vet_atags




공유하기













[t:/] is not "technology - root". dawnsea, rss